package en.edu.lzzy.bookmanagement.service;

import en.edu.lzzy.bookmanagement.model.Book;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface BookService {
    // 获取所有图书的方法
    List<Book> getAllBooks();
    // 接受一个  `Book`  类型的参数，并将其保存
    void saveBook(Book book);
    // 通过图书ID获取图书的方法
    Book getBookById(long id);
    // 通过图书ID删除图书的方法
    void deleteBookById(long id);

    // 没实现分页功能的搜索方法
    // List<Book> searchBooks(String keyword, String searchBy);

    // 根据关键字和搜索条件进行分页搜索图书的方法
    Page<Book> searchBooks(String keyword, String searchBy, Pageable pageable);
    // 分页和排序
    Page<Book> findPaginated(int pageNo, int pageSize, String sortField, String sortDirection);
}

